#include <stdio.h>

// 去除一个有序数组里面的重复元素
// 一样可以使用双指针法实现

int removeDuplicates(int* nums, int numsSize) 
{

    int des = 0 , src = des + 1 ;

    while (src < numsSize)
    {

        if (nums [des] == nums [src])
        {

            src++ ;

        }

        else
        {

            nums [++des] = nums [src] ;

            src++ ;

        }

    }

    return des + 1 ; // 这里注意要返回的是元素个数,不是下标
    
}

int main ()
{

    int nums [] = { 1 , 1 , 2 , 2 , 3 , 3 , 4 , 4 , 4 , 5 } ;

    int numsSize = sizeof (nums) / sizeof (nums [0]) ;

    int ret = removeDuplicates (nums , numsSize) ;

    for (int i = 0 ; i < ret ; i++)
    {

        printf ("%d " , nums [i]) ;

    }

    return 0 ;

}